'use strict';
const db = uniCloud.database();

/**
 * 云函数：获取题目
 * @param {Object} event - 请求参数
 * @param {string} event.category - 科目（根据原来的字段修改为 category）
 * @param {string} event.difficulty - 难度
 * @param {number} event.limit - 数量
 * @returns {Object} - 题目列表
 */
exports.main = async (event, context) => {
  const { category, difficulty, limit = 10 } = event;
  try {
    const questionCollection = db.collection('questions');
    
    // 设置查询条件
    let query = {};
    if (category) query.category = category; // 根据科目筛选
    if (difficulty) query.difficulty = difficulty; // 根据难度筛选

    // 查询题目
    const res = await questionCollection.where(query).get(); // 限制查询最大返回条数，提高性能
    
    // 从查询到的题目中随机抽取指定数量的题目
    const questions = res.data;
    if (questions.length > 0) {
      const randomQuestions = questions.sort(() => Math.random() - 0.5).slice(0, limit);  // 随机抽取题目
      return {
        code: 0,
        data: randomQuestions,
        msg: '获取题目成功'
      };
    } else {
      return {
        code: 0,
        data: [],
        msg: '没有找到符合条件的题目'
      };
    }

  } catch (e) {
    console.error('获取题目失败:', e);
    return { code: -1, msg: `获取题目失败: ${e.message || '未知错误'}` };
  }
};